<template>
    <div class="box">
        <van-form @submit="onSubmit">
            <van-cell-group inset>
                <van-field v-model="username" name="username" label="手机号" placeholder="手机号"
                    :rules="[{ pattern: pattern1, required: true, message: '请填写手机号' }]" />
                <van-field v-model="password" type="password" name="password" label="密码" placeholder="密码"
                    :rules="[{ pattern: pattern2, required: true, message: '请填写密码' }]">
                </van-field>

                <van-field v-model="sms" center clearable label="短信验证码" placeholder="请输入短信验证码">
                    <template #button>
                        <van-button size="small" type="primary" v-if="time == 0" @click="toShow">发送验证码</van-button>
                        <van-button size="small" disabled="true" type="primary" v-else>{{ time }}s后重新发送</van-button>
                    </template>
                </van-field>

            </van-cell-group>
            <div style="margin: 16px;">
                <van-button round block type="primary" native-type="submit">
                    登录
                </van-button>
            </div>
        </van-form>

    </div>
</template>

<script setup>
import { ref } from "vue";
import { loginApi } from "@/api/api";

import { showToast } from 'vant';

// showToast('提示内容');

import { useRoute, useRouter } from 'vue-router'

const router = useRouter()
const route = useRoute()

const pattern1 = /^1[3-9]\d{9}$/;
const pattern2 = /^\d{6}$/;

const username = ref('');
const password = ref('');
const onSubmit = (values) => {
    console.log('submit', values);
    loginApi(username.value, password.value).then((res) => {
        if (res.data.code == 0) {
            showToast('登录成功');
            localStorage.setItem('token', res.data.data.token);
            localStorage.setItem('username', res.data.data, username);
            router.push('/home/index');
        }
        else {
            showToast(res.data.msg);
        }
    })
};

let sms = ref('');
let time = ref(0);
const toShow = () => {
    sms.value = Math.random().toString().slice(2, 8);
    time.value = 10;
    let times = setInterval(() => {
        time.value--;
        if (time.value == 0) {
            clearInterval(times);
        }
    }, 1000)
}


</script>

<style lang="scss" scoped>
.box {
    width: 100%;
    height: 100%;
}
</style>